Portable electronic devices, such as notebook computers, personal organizers, portable telecommunication equipment and other processor-based devices consume much power during their display mode. Portable computers, and other processor-based devices, are known to include a central processing unit (CPU), video graphics circuitry, system memory and other peripheral circuits. In such computers, the central processing unit functions as a host processor while the video graphics circuitry (e.g., a graphics coprocessor) functions as a loosely coupled coprocessor. By way of example, the video graphics circuitry may be an integrated circuit on a single semiconductor die, such as an application specific integrated circuit (ASIC).
The power dissipation and performance characteristics of the CPU, video graphics circuitry, system memory and other integrated circuits are typically related to an operating frequency of a clock signal. Although the performance of the video graphics circuitry increases as the operating frequency of the clock signal increases, the video graphics circuitry also increases power consumption and generates more heat. Typically, the operating frequency of the clock signal is limited to a maximum clock frequency commonly referred to as a nominal operating frequency.
The video graphics circuit includes a phase lock loop (PLL) circuit to generate a clock signal for the video graphics coprocessor (graphics engine), the graphics memory and a display device (or devices), such as a CRT, that a user may plug into the laptop computer or an LCD display that is mounted to the laptop computer. As is known in the art, the graphics engine may include another PLL circuit for generating a corresponding graphics engine clock signal, other than the memory clock signal.
Power consumption and thermal dissipation needs to be minimized for portable devices without unnecessarily sacrificing operational performance. Operational performance for a portable device may include display operations and video playback requiring real-time processing, such as video capture operation, so that real-time display occurs on the LCD display, or any suitable display device. For example, where a game application or a TV tuner is providing a video signal to the video capture engine, the video signal should be processed in real time to facilitate display in real time. Hence, the video capture engine has a higher priority over a 2D or 3D drawing engine, which may be slightly delayed and still provide the user with high performance on display times. The need for minimizing power consumption without unnecessarily sacrificing operational performance also arises for nonportable devices due to increased circuit density and increased clock speeds.
FIG. 1 shows, by way of example, a block diagram of a video graphics system 2 used in computer devices, such as a laptop computer, a handheld processing device, and a telecommunication device or any other suitable portable display device that generates graphics and/or video display information to a display device and employs system level standby/suspend power management control. When the device is a laptop computer, such a device typically includes an operating system 4 that operates under control of a host CPU 6, which then provides suspend/standby command data 22 to a power management control system 12. The operating system 4 generates suspend/standby command data 22 when, for example, the laptop computer is in a standby/suspend mode, as activated through a graphic user interface, software controlled timer, switch or other trigger event. A memory controller 16 receives inactive mode suspend/standby command data 14 and in response provides clock enable/disable data 18 to, for example, control a memory clock enable pin (and/or other pins) on memory 20 with selectable power consumption modes to put the memory 20 in a self-refresh mode during the system level standby/suspend mode (e.g., the inactive mode). The memory 20 may be, for example, a dynamic RAM (DRAM) synchronous memory, such as synchronous dynamic RAM (SDRAM) or synchronous graphics RAM (SGRAM) or any other suitable graphics and/or video memory device. This memory may reside on the same semiconductor die (ASIC) as the video graphics system 2, or it may be separate and connected through board level or package level traces.
Memory request engines 24 also include, for example, a 2D/3D GUI memory engine 26, display engine 28, host CPU 6, video request engine 30, onboard SDRAM, SGRAM or other RAM, serving as the frame buffer memory within the memory 20, and other devices not shown, such as a video capture engine and a video playback engine. Accordingly, the power management control system 12 can disable the memory clock for memory 20 during suspend and standby modes to reduce the power consumption of the video graphics system 2, which includes the synchronous memories used for frame buffer operations. However, the power management control system 12 typically only places the memory 20 in a low power mode when the video graphics system 2 is completely idle, by turning off the memory clock and other clocks during the suspend mode. When the operating system 4 indicates that the display is in the active mode (e.g., the display is enabled), the memory 20 is typically always enabled and the memory clock is always running at a nominal operating frequency.
Other graphics processing circuits are known that have activity-based power reduction by turning off, for example, a graphics user interface clock to a GUI generating engine, and a three-dimensional rendering engine clock to the 3D engine when the 3D engine is not being used. This power reduction is typically performed because the 3D engine, when operational, can consume large amounts of processing capability of the graphics processing circuitry. Consequently, branches from a common engine clock are selectively turned off based on an activity level. However, this power reduction technique is typically performed for only larger processing engines, such as 3D engines. In addition, where the engines utilize different clock branches, only one clock branch, such as an engine clock, is controlled. Consequently, the memory clock in the memory is typically allowed to continue to operate independently, thus consuming power.
According to another method, a system detects memory access demand, and automatically adjusts memory operation accordingly to facilitate power reduction. The system typically adjusts memory operation based on memory read requests, as well as condition data such as when a display is enabled, the graphics engine is active, a subpicture or video overlay is enabled, and a video capture operation is enabled. However, this method is limited to adjusting memory operation based on memory read requests. Consequently, the graphics engine is active and its activity level is not varied when memory activity levels are varied.